﻿

//点击新增产品的弹框
layui.use(function () {
    var $ = layui.$;
    var layer = layui.layer;
    var util = layui.util;
    var form = layui.form;
    var table = layui.table;

    let selected = [];
    let selectedRows = [];
    let storehouseId = [];

    var token = localStorage.getItem("token");
    var code = Math.floor(Math.random() * 1000000) + 100000;

    util.on('lay-on', {
        //新增产品
        'test-page': function () {

            //创建弹出层
            var index = layer.open({
                type: 1,
                area: ['1300px', '700px'], // 宽高
                content: '<form class="layui-form layui-row layui-col-space16" id="IDProdurement">' +
                    '<div class="layui-col-md4">' +
                    '<label class="layui-form-label" style="width: 120px" >产品编码:</label>' +
                    '<div class="layui-input-block">' +
                    '<input type="text" id="productsCode" placeholder="产品编码" style="width:200px;" class="layui-input" lay-affix="clear">' +
                    '</div>' +
                    '</div>' +
                    '<div class="layui-col-md4">' +
                    '<label class="layui-form-label" style="width: 120px">产品名称:</label>' +
                    '<div class="layui-input-block">' +
                    '<input type="text" name="B" placeholder="产品名称" id="productsName" style="width:200px;" lay- affix="clear" class= "layui-input">' +
                    '</div>' +
                    '</div>' +
                    '<div class="layui-btn-container layui-col-md4">' +
                    '<button type="button" class="layui-btn" id="searchBtn" > 查询</button>' +
                    '</div> ' +
                    '</form>' +
                    '<table class= "layui-table" id="Produrement-Id" >' +
                    '<thead>' +
                    '<tr>' +
                    '<col width="150">' +
                    '<col>' +
                    '</tr>' +
                    '</thead>' +
                    '</table>' +
                    '<button type="button" id="demo-login" class="layui-btn layui-bg-blue">提交</button>'
            });
            form.render();

            //弹出层弹出时显示数据(显示方法)
            getProcurementList({
                productsCode: null,
                productsName: null,
                pageIndex: 1,
                pageSize: 10
            });

            //查询功能
            $("#searchBtn").on('click', function () {
                var productsCode = $("#productsCode").val();
                var productsName = $("#productsName").val();
                getProcurementList({
                    productsCode: productsCode,
                    productsName: productsName,
                    pageIndex: 1,
                    pageSize: 10
                });
            });

            //获取复选框的值
            table.on('checkbox(Produrement-Id)', function (obj) {
                console.log(obj);
                // 当前选中的行加入到 selectedRows 数组中
                if (obj.checked) {
                    selectedRows.push(obj.data);
                }
                else {
                    // 当前取消选中的行从 selectedRows 数组中移除
                    selectedRows = selectedRows.filter(row => row.productsID !== obj.data.productsID);
                }
                console.log(selectedRows)
            })

            //显示选中的产品信息(点击提交)
            $("#demo-login").on('click', function () {
                //关闭弹出层
                layer.close(index);
                //显示选中的产品
                table.render({
                    elem: "#ID-demo",
                    css: [
                        // 设置单元格样式
                        // 取消默认的溢出隐藏，并设置适当高度
                        '.layui-table-cell{height: 50px; line-height: 40px;}',
                        '.layui-table-cell .layui-colorpicker{width: 38px; height: 38px;}',
                        '.layui-table-cell select{height: 36px; padding: 0 5px;}',
                    ].join(''),
                    cols: [[
                        { type: 'checkbox' },
                        { field: 'productsName', title: '产品名称', width: 200 },
                        { field: 'productsCode', title: '产品编码', width: 200 },
                        { field: 'specs', title: '规格', width: 150 },
                        { field: 'storageUnits', title: '单位', width: 150 },
                        { field: 'price', title: '单价', width: 150 },
                        {
                            field: 'injureNum',
                            title: '报损数量',
                            width: 150,
                            edit: 'textarea'
                        },
                        {
                            field: 'storehouseId',
                            title: '报损库位',
                            minWidth: 120,
                            templet: '#TPL-select'
                        },
                    ]],
                    data: selectedRows,
                    loading: true,
                    done: function (res, curr, count) {
                        var options = this;
                        table.on('edit(ID-demo)', function (obj) {
                            console.log(obj);
                            var value = obj.value; // 得到修改后的值
                            var data = obj.data; // 得到所在行所有键值
                            var field = obj.field; // 得到字段

                        });

                        form.on('select(select-demo)', function (obj) {
                            console.log(obj)
                            var value = obj.value; // 获取选中项 value
                            storehouseId = value;
                            console.log(storehouseId)
                        });

                        //获取复选框的值
                        table.on('checkbox(ID-demo)', function (obj) {
                            console.log(obj);
                            //当前选中的行加入到 selected 数组中
                            if (obj.checked) {
                                selected.push(obj.data);
                            }
                            else {
                                // 当前取消选中的行从 selected 数组中移除
                                selected = selected.filter(row => row.productsID !== obj.data.productsID);
                            }
                            console.log(selected)
                        })
                    }



                });

                

            })
        }
    });


  
    //显示+查询
    function getProcurementList({ productsCode, productsName, pageIndex = 1, pageSize = 10 }) {
        $.ajax({
            url: "/Procurement/GetProductList",
            type: "get",
            data: {
                Token: token,
                pindex: pageIndex,
                psize: pageSize,
                productsCode: productsCode,
                productsName: productsName
            },
            success: function (d) {
                var res = JSON.parse(d);
                if (res != null && res.data) {
                    // 渲染表格
                    table.render({
                        elem: '#Produrement-Id',
                        cols: [[
                            { type: 'checkbox', fixed: 'left' },
                            { field: 'productsCode', title: '产品编码', width: 200, fixed: 'left', unresize: true },
                            { field: 'productsName', title: '产品名称', width: 200 },
                            { field: 'specs', title: '规格', width: 150 },
                            { field: 'productTypeID', title: '类别', width: 150 },
                            { field: 'storageUnits', title: '存储单位', width: 150 },
                            { field: 'wrapType', title: '包装类型', width: 150 },
                            { field: 'price', title: '单价', width: 150 },
                        ]],
                        data: res.data.list,  // 数据源
                        page: true,   // 启用分页
                        limit: pageSize,    // 每页显示多少条数据
                        limits: [10, 20, 30],  // 分页选择项
                        total: res.data.lcount,  // 总记录数
                        loading: true // 启用加载状态
                    });

                    // 渲染分页控件
                    layui.laypage.render({
                        elem: 'pagination',  // 分页容器
                        count: res.data.lcount,  // 总记录数
                        limit: pageSize,
                        jump: function (obj, first) {
                            if (!first) {
                                fetchProductList({ productsCode, productsName, pageIndex: obj.curr, pageSize });  // 翻页时重新请求数据
                            }
                        }
                    });
                }
            },
            error: function (xhr, status, error) {
                console.log("查询出错: " + error);
            }
        });
    }



    //反填
    var urlParams = new URLSearchParams(window.location.search);
    var productsID = urlParams.get('productsID');
    var inProductId = urlParams.get('inProductId');
    console.log(productsID)
    console.log(inProductId)
    var obj = {
        Token: token,
        InProductId: inProductId
    }
    $.ajax({
        url: '/Injure/FanInjureList',
        type: 'get',
        data: obj,
        success: function (res) {
            console.log(res)
            var fan = JSON.parse(res);
            console.log(fan);
            if (fan != null) {
                // 渲染表格
                table.render({
                    elem: '#ID-demo',
                    css: [
                        // 设置单元格样式
                        // 取消默认的溢出隐藏，并设置适当高度
                        '.layui-table-cell{height: 50px; line-height: 40px;}',
                        '.layui-table-cell .layui-colorpicker{width: 38px; height: 38px;}',
                        '.layui-table-cell select{height: 36px; padding: 0 5px;}',
                    ].join(''),
                    cols: [[
                        { type: 'checkbox' },
                        { field: 'productsName', title: '产品名称', width: 200 },
                        { field: 'productsCode', title: '产品编码', width: 200 },
                        { field: 'specs', title: '规格', width: 150 },
                        { field: 'storageUnits', title: '单位', width: 150 },
                        { field: 'procurementNum', title: '单价', width: 150 },
                        {
                            field: 'injureNum',
                            title: '报损数量',
                            width: 150,
                            edit: 'textarea'
                        },
                        {
                            field: 'storehouseId',
                            title: '报损库位',
                            minWidth: 120,
                            templet: '#TPL-select'
                        },
                    ]],
                    data: fan.data,  // 数据源,
                    done: function (res, curr, count) {
                        table.on('edit(ID-demo)', function (obj) {
                            console.log(obj);
                            var value = obj.value; // 得到修改后的值
                            var data = obj.data; // 得到所在行所有键值
                            var field = obj.field; // 得到字段

                        });

                        //获取复选框的值
                        table.on('checkbox(ID-demo)', function (obj) {
                            console.log(obj);
                            //当前选中的行加入到 selected 数组中
                            if (obj.checked) {
                                selected.push(obj.data);
                            }
                            else {
                                // 当前取消选中的行从 selected 数组中移除
                                selected = selected.filter(row => row.productsID !== obj.data.productsID);
                            }
                            console.log(selected)
                        })

                    }
                });

                //显示报损库位下拉框
                var data = {
                    Token: token,
                    pageIndex: 1,
                    PageSize: 100
                }
                $.ajax({
                    url: '/Foundation/GetStorehouse',
                    type: "get",
                    data: data,
                    success: function (res) {
                        var d = JSON.parse(res);
                        console.log(d);
                        var suppliers = d.data.list;
                        var select = '<option value="">请选择报损库位</option>';
                        // 循环遍历数据并填充下拉框
                        suppliers.forEach(function (item) {
                            if (item.storehouseId == fan.data[0].storehouseId) {
                                select += '<option value="' + item.storehouseId + '"  selected>' + item.storehouseName + '</option>';
                            }
                            else {
                                select += '<option value="' + item.storehouseId + '">' + item.storehouseName + '</option>';
                            }
                            
                        });
                        $('.city').html(select);
                        // 重新渲染所有下拉框
                        layui.use('form', function () {
                            var form = layui.form;
                            form.render('select');
                        });
                    }
                })



                //反填采购
                $(fan.data).each(function () {
                    console.log(this);

                    var date = new Date(this.markTime);

                    // 获取年、月、日
                    var year = date.getFullYear();
                    var month = (date.getMonth() + 1).toString().padStart(2, '0');  // 月份从0开始，因此加1
                    var day = date.getDate().toString().padStart(2, '0');  // 补充两位数字

                    // 拼接成 "yyyy-MM-dd" 格式
                    var formattedDate = `${year}-${month}-${day}`;

                    $("#InjureCode").val(this.injureCode); //采购单号
                    $("#InjureType").val(this.injureType);   //单据类型
                    $("#MorderNumber").val(this.morderNumber);  //关联订单号
                    $("#MakePerson").val(this.makePerson);  //制单人
                    $("#MarkTime").val(formattedDate); //制单时间
                    layui.form.render('select');

                })
            }
        }
    })



    //点击提交修改
    var injureId = urlParams.get('injureId');
    $("#addpro").on('click', function () {
       
        var model = {
            injureId: injureId,
            auditStart: 1,
            InjureStart: 1,
            injureCode: selected[0].injureCode,
            injureType: $("#InjureType").val(),
            morderNumber: $("#MorderNumber").val(),
            makePerson: $("#MakePerson").val(),
            markTime: $("#MarkTime").val(),
            injureDetails: [
                {
                    productId: selected[0].productsID,  // 使用 selected 中的产品ID
                    injureCode: selected[0].injureCode,  
                    injureNum: selected[0].injureNum,  // 使用 selected 中的损坏数量
                    storehouseId: selected[0].storehouseId,  // 使用已有的仓库ID
                }
            ],
            Token: token,
        }
        console.log(model);
        $.ajax({
            url: "/Injure/UpdInjureList",
            type: "post",
            data: model,
            success: function (d) {
                var res = JSON.parse(d);
                console.log(res);
                if (res != null) {
                    alert('修改成功');
                    location.href = '/Injure/GetInjure';
                }
                else {
                    alert('修改失败');
                }
            }
        })


    })






})